package com.itheima.test5;

public class Test5Innerclass {
    /*
        匿名内部类
        前提：需要存在类/接口
        格式：
            new 类名/接口名() {
                重写方法
            }
     */
    public static void main(String[] args) {
        InterImpl ii = new InterImpl();
        ii.show();

        // 匿名内部类的理解：将继承/实现、方法重写、创建对象 放在了一步进行。
        // 解释：实现了 Inner 接口的一个实现类对象。
        new Inter() {

            @Override
            public void show() {
                System.out.println("匿名内部类中的 show 方法");
            }
        }.show();

        /*
            接口中存在多个方法，使用多态，调用多个方法
         */
        Inter2 i = new Inter2() {
            @Override
            public void show1() {
                System.out.println("Inter2...show1");
            }

            @Override
            public void show2() {
                System.out.println("Inter2...show2");
            }
        };

        i.show1();
        i.show2();
    }
}

interface Inter {
    void show();
}

class InterImpl implements Inter {

    @Override
    public void show() {
        System.out.println("InterImpl 重新的 show 方法");
    }
}

interface Inter2 {
    void show1();
    void show2();
}


